import { request } from "../../request/index.js";
import regeneratorRuntime from "../../lib/runtime/runtime.js";
Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 左侧菜单 
    leftMenuList:[],
    // 右侧列表数据
    rightContent:[],
    // 别选中的样式
    currentIndex:0,
    scrollTop:0
  },
  // 接口接受的数据
  Cates:[],

  onLoad:function(options){
    // 2.判断本地存储是否有旧的数据
    // 3.如果没有就发送请求
    // 4.假如有旧的数据，并且旧的数据还没有过期，就是用本地的旧的数据

    // 1.获取本地存储中的数据
    const Cates = wx.getStorageSync("cates");
    // 2.判断数据是否存在
    if(!Cates){
      // 不存在 发送数据请求
      this.getCates();
    }else{
      // 有旧的数据 定义一个过期时间 10s =》 5分钟
      if(Date.now() - Cates.time > 1000*10){
        // 重新发送请求
        this.getCates();
      }else{
        // 可以使用旧的数据
        // console.log("可以的使用旧的数据");
        this.Cates = Cates.data;
      }
    }
    // this.getCates();
  },
  // 获取分类数据
  async getCates(){
    // request({
    //   url:"/categories"
    // })
    // .then(res => {
    //   // console.log(res);
    //   this.Cates = res.data.message;
    //   // 把微信接口的数据存入到本地存储中
    //   wx.setStorageSync("cates", {time:Date.now(),data:this.Cates})

    //   // 构造左侧的数据
    //   let leftMenuList = this.Cates.map(v => v.cat_name);
    //   // 构造右侧的数据
    //   let rightContent = this.Cates[0].children;
    //   this.setData({
    //     leftMenuList,
    //     rightContent
    //   })
    // })

    //  1.使用es7的async await来请求数据
    const res = await request({ url:"/categories"});
    // this.Cates = res.data.message;
    this.Cates = res.data.message;
      // 把微信接口的数据存入到本地存储中
      wx.setStorageSync("cates", {time:Date.now(),data:this.Cates})

      // 构造左侧的数据
      let leftMenuList = this.Cates.map(v => v.cat_name);
      // 构造右侧的数据
      let rightContent = this.Cates[0].children;
      this.setData({
        leftMenuList,
        rightContent
      })
  },
  // 点击事件处理
  handelClickTap(e){
    // console.log(e);
    /* 
    1.获取标题索引值
    2.给data中的currentIndex赋值
    3.根据不同的索引来渲染不同的商品
      */
    const {index} = e.currentTarget.dataset;
    let rightContent = this.Cates[index].children;
    this.setData({
      currentIndex:index,
      rightContent,
      scrollTop:0
    })
  }
})